<!DOCTYPE html>
<html lang='en'>

<head>
    <meta charset='UTF-8'>
    <meta name='viewport' content='width=device-width, initial-scale=1.0'>
    <title>Document</title>
    <script type='text/javascript' src='js/vue.js'></script>
</head>
<style type="text/css">
    .current {
        color: orange;
    }
</style>

<body>
    <div id='app'>
        {{msg}}
        <!-- 通过属性绑定方法将list传递给子组件 -->
        <aa :list="list">
            <!-- //因为这里的模板是准备填充到slot中的，但是无法直接获取到list中的对象数据，故只能通过slot绑定属性，然后组件中通过slot-scope方法来接收传递的数据 -->
            <template slot-scope="ele">
                <em v-if="ele.toval.id == 2" class="current">{{ele.toval.name}}</em>
                <span v-else>{{ele.toval.name}}</span>
            </template>
        </aa>
    </div>
    <script type='text/javascript'>
        Vue.component('aa', {
            props: ['list'],
            //如果模板中只有一个插槽，在调用组件时，其实用不用template都行
            template: `
                <ul>
                    <li v-for="item in list" :key="item.id">
                        <slot :toval="item"></slot>
                    </li>
                </ul>`
        })
        var vm = new Vue({
            el: '#app',
            data: {
                msg: 'Hello Vue',
                list: [{
                    id: 1,
                    name: 'apple'
                }, {
                    id: 2,
                    name: 'orange'
                }, {
                    id: 3,
                    name: 'banana'
                }]
            },

        });
    </script>
</body>

</html>